package com.anyou.mall.supply.vo;

import com.anyou.common.annotation.Excel;
import com.anyou.common.core.domain.BaseEntity;
import com.anyou.mall.supply.domain.SupplyTime;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * 补给单对象 supply
 *
 * @author ruoyi
 * @date 2023-10-13
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper=false)
@ApiModel(value = "补给单vo")
@TableName(value = "supply")
public class SupplyVo
{
    private static final long serialVersionUID = 1L;

    /** 补给单id */
    @ApiModelProperty("补给单id")
    private Long supplyId;

    /** 间隔时间（天） */
    @ApiModelProperty("间隔时间（天）")
    @Excel(name = "间隔时间", readConverterExp = "天=")
    private Long interval;

    /** 总配送数量 */
    @ApiModelProperty("总配送数量")
    @Excel(name = "总配送数量")
    private Long totalNum;

    /** 每次配送数量 */
    @ApiModelProperty("每次配送数量")
    @Excel(name = "每次配送数量")
    private Long everyNum;

    /** 总配送次数 */
    @ApiModelProperty("总配送次数")
    @Excel(name = "总配送次数")
    private Long totalTime;

    /** 开始配送时间（格式：2020-12-23） */
    @ApiModelProperty("开始配送时间（格式：2020-12-23）")
    @Excel(name = "开始配送时间", readConverterExp = "格=式：2020-12-23")
    private LocalDate startTime;

    /** 商品小计（元） */
    @ApiModelProperty("商品小计（元）")
    @Excel(name = "商品小计", readConverterExp = "元=")
    private BigDecimal goodsTotalPrice;

    /** 桶押金（元） */
    @ApiModelProperty("桶押金（元）")
    @Excel(name = "桶押金", readConverterExp = "元=")
    private BigDecimal bucketMoney;

    /** 押桶数量 */
    @ApiModelProperty("押桶数量")
    @Excel(name = "押桶数量")
    private Long bucketNum;

    /** 桶押金总金额（元） */
    @ApiModelProperty("桶押金总金额（元）")
    @Excel(name = "桶押金总金额", readConverterExp = "元=")
    private BigDecimal bucketTotalMoney;

    /** 商品id */
    @ApiModelProperty("商品id")
    @Excel(name = "商品id")
    private Long goodId;

    /** 商品sku_id */
    @ApiModelProperty("商品sku_id")
    @Excel(name = "商品sku_id")
    private Long goodSkuId;

    /** 已送过的次数 */
    @ApiModelProperty("已送过的次数")
    @Excel(name = "已送过的次数")
    private Long finishTime;

    /** 下次配送时间（格式：2020-12-23） */
    @ApiModelProperty("下次配送时间（格式：2020-12-23）")
    @Excel(name = "下次配送时间", readConverterExp = "格=式：2020-12-23")
    private LocalDate nextDeliveryTime;

    /** 支付方式（0线下） */
    @ApiModelProperty("支付方式（0线下）")
    @Excel(name = "支付方式", readConverterExp = "0=线下")
    private Long payType;

    /** 收货人姓名 */
    @ApiModelProperty("收货人姓名")
    @Excel(name = "收货人姓名")
    private String receiveName;

    /** 收货人电话 */
    @ApiModelProperty("收货人电话")
    @Excel(name = "收货人电话")
    private String receivePhone;

    /** 所属合伙人id */
    @ApiModelProperty("所属合伙人id")
    @Excel(name = "所属合伙人id")
    private Long partnerId;
    /** 所属合伙人id */
    @ApiModelProperty("所属合伙人名字")
    @Excel(name = "所属合伙人名字")
    @TableField(exist = false)
    private Long partnerName;

    /** 收货地址-省 */
    @ApiModelProperty("收货地址-省")
    @Excel(name = "收货地址-省")
    private String receiveProvince;

    /** 收货地址-市 */
    @ApiModelProperty("收货地址-市")
    @Excel(name = "收货地址-市")
    private String receiveCity;

    /** 收货地址-区 */
    @ApiModelProperty("收货地址-区")
    @Excel(name = "收货地址-区")
    private String receiveArea;

    /** 收货地址-街道 */
    @ApiModelProperty("收货地址-街道")
    @Excel(name = "收货地址-街道")
    private String receiveStreet;

    /** 收货地址-详细地址 */
    @ApiModelProperty("收货地址-详细地址")
    @Excel(name = "收货地址-详细地址")
    private String receiveAddr;

    /** 优惠金额（元） */
    @ApiModelProperty("优惠金额（元）")
    @Excel(name = "优惠金额", readConverterExp = "元=")
    private BigDecimal discountPrice;

    /** 删除标志：0-未删除，1-已删除 */
    @ApiModelProperty("删除标志：0-未删除，1-已删除")
    private Long delFlag;
    /** 创建时间 */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty("配送时间列表")
    private List<SupplyTime> supplyTimeList;

    @ApiModelProperty("商品信息")
    private GoodsVo goodsVo;


}
